package mx.frantor.catalogos.bussines;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import mx.frantor.catalogos.dao.ClientesDAO;
import mx.frantor.catalogos.dao.GarantiasDAO;
import mx.frantor.catalogos.daoimp.ClientesDAOImpl;
import mx.frantor.catalogos.daoimp.GarantiasDAOImpl;
import mx.frantor.catalogos.entitys.GarantiasEntity;
import mx.frantor.catalogos.entitys.PedidosEntity;

public class GarantiasBussines {
	
	private ClientesDAO cliDAO = new ClientesDAOImpl();
	DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
	java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("dd/MM/yyyy");
	java.text.SimpleDateFormat sdh=new java.text.SimpleDateFormat("k:mm");
	
	private GarantiasDAO garDAO = new GarantiasDAOImpl();
	String res=null;
	
	public String AgregarGarantias(String folio, String modelo, String marca, String falla, Date fecha, String timepoInstalacion,
			Float noMantenimientos, Boolean magnesio, Boolean caja, String lugarInstalacion, String comentarios,
			String lote, long idCliente, String status){
		GarantiasEntity garE = new GarantiasEntity();
		System.out.println(fecha);
		garE.setFolio(folio);
		garE.setModelo(modelo);
		garE.setMarca(marca);
		garE.setFalla(falla);
		garE.setFecha(fecha);
		garE.setTimepoInstalacion(timepoInstalacion);
		garE.setNoMantenimientos(noMantenimientos);
		garE.setMagnesio(magnesio);
		garE.setCaja(caja);
		garE.setLugarInstalacion(lugarInstalacion);
		garE.setComentarios(comentarios);
		garE.setLote(lote);
		garE.setIdCliente(idCliente);
		garE.setStatus(status);
		
		res = garDAO.agregarGarantias(garE);
		System.out.println("resultado agregar "+res);
		res= "agregado";
		return res;
	}
	
	public String modificarGarantias(long idGarantias, String folio, String modelo, String marca, String falla, Date fecha, String timepoInstalacion,
			Float noMantenimientos, Boolean magnesio, Boolean caja, String lugarInstalacion, String comentarios,
			String lote, long idCliente, String status){
		
		GarantiasEntity garE = new GarantiasEntity();
		
		garE.setIdGarantias(idGarantias);
		garE.setFolio(folio);
		garE.setModelo(modelo);
		garE.setMarca(marca);
		garE.setFalla(falla);
		garE.setFecha(fecha);
		garE.setTimepoInstalacion(timepoInstalacion);
		garE.setNoMantenimientos(noMantenimientos);
		garE.setMagnesio(magnesio);
		garE.setCaja(caja);
		garE.setLugarInstalacion(lugarInstalacion);
		garE.setComentarios(comentarios);
		garE.setLote(lote);
		garE.setIdCliente(idCliente);
		garE.setStatus(status);
		
		res = garDAO.modificarGarantias(garE);
		
		return res;	
	}
	
	public String eliminarGarantias(long idGarantias){
		res = garDAO.eliminarGarantias(idGarantias);
		return res;
			}
	
	public List<GarantiasEntity> getTodosGarantiasActivos(){
		List<GarantiasEntity> lstgarantias = garDAO.getTodosGarantiasActivos();
		
		for(GarantiasEntity oce : lstgarantias){
			try{
				oce.setSFecha(sdf.format(oce.getFecha()));
				
			}catch(Exception err){
				java.util.Date fech = new java.util.Date();
				oce.setSFecha(sdf.format(fech));
			}
			if(oce.getIdCliente()!=0){
							oce.setNombre(cliDAO.getClientesId(oce.getIdCliente()).getNombre());
					}
		}
		System.out.println(lstgarantias.toString());
		return lstgarantias;	
	}
	
	public GarantiasEntity getGarantiasId(long idGarantias){
		GarantiasEntity garE = garDAO.getGarantiasId(idGarantias);
		try{
			garE.setSFecha(sdf.format(garE.getFecha()));
			
		}catch(Exception err){
			java.util.Date fech = new java.util.Date();
			garE.setSFecha(sdf.format(fech));
		}
		System.out.println(garE);
		return garE;
	}
	
	public List<GarantiasEntity> getGarantiasPorId(long idGarantias){
		List<GarantiasEntity> lstgarantias = garDAO.getGarantiasPorId(idGarantias);
		for(GarantiasEntity oce : lstgarantias){
			try{
				oce.setSFecha(sdf.format(oce.getFecha()));
				
			}catch(Exception err){
				java.util.Date fech = new java.util.Date();
				oce.setSFecha(sdf.format(fech));
			}
			if(oce.getIdCliente()!=0){
							oce.setNombre(cliDAO.getClientesId(oce.getIdCliente()).getNombre());
					}
		}
		return lstgarantias;
	}
	
}
	
